#ifndef MESSAGE_H
#define MESSAGE_H


#include <QByteArray>
#include <QBuffer>
#include <QIODevice>

/**
 * @brief 消息类型
 */
enum class MsgType
{
    HEART, ///< 心跳消息
    MSG    ///< 普通消息
};

/**
 * @brief 消息
 */
class Message
{
public:

    /**
     * @brief 构造心跳消息
     */
    Message();

    /**
     * @brief 构造普通消息
     * @param type 消息类型
     * @param msg  消息内容
     */
    Message(const QString & msg );

    /**
     * @brief 构造消息
     * @param array 消息类型和消息内容
     */
    Message(QByteArray & array );

    /**
     * @brief 将消息类型和消息类型转换为QByteArray
     * @return
     */
    QByteArray  toByteArray();

    /**
     * @brief 获取消息体
     * @return
     */
    inline QString & getMessage(){ return m_message;}

    /**
     * @brief 判断是否为心跳消息
     * @return
     */
    inline bool isHeartMessage(){return m_type == MsgType::HEART;}
private:
    MsgType  m_type;   ///<  消息类型
    QString  m_message;///< 消息内容

};
#endif // MESSAGE_H
